Many modern computer systems, such as through an operating system running on a computer system, provide for the capturing of audio from an input device (e.g., a microphone or other analog or digital input source) and rendering of audio to an output device (e.g., a speaker, headphone jack, or other analog or digital output point, including output to a network). Typical computer systems allow for concurrent access to an audio system by multiple applications or processes. For example, on a single computer device, a user may be simultaneously listening to music (e.g., from a file or using a streaming application), playing a computer game, having a conversation (e.g., using voice over Internet Protocol (“VoIP”) software), using a web browser to browse web pages having audio content, and streaming audio and/or video (e.g., “gamecasting”).
Typically, for software applications providing audio to be output to particular output devices or locations (e.g., audio endpoints), a computer system will combine audio content destined for each audio endpoint and cause the combined audio content to be rendered to the audio endpoint. For instance, in the above example, at the user's computer, a speaker may output the combined audio from the music source, the game, the conversation, and the web browser. The audio services provided by a computer system typically allow an application to receive the audio content being rendered to a particular audio endpoint, which is sometimes referred to as an audio “loopback.” The loopback audio may be recorded by an application, or the loopback audio stream may be used for monitoring audio quality and adjusting application or hardware settings or for audio processing, such as to perform echo cancellation.
Although the loopback audio corresponding to audio rendered to an audio endpoint may be made available to applications, if the loopback audio includes audio content from multiple sources, the audio content specific to an individual application is typically not available to other applications. Although in some cases an application includes functionality to share audio content with another, selected application, such functionality is not generally available (e.g., a feature provided by the computer device, such as by its operating system). Thus, continuing the example above, if a user is gamecasting, the audio content being broadcast is typically the same audio content being rendered by the user's speakers—including not only audio content from the game, and perhaps the user's commentary, but also the music the user is listening to, sounds from web pages the user has open, etc. This can be undesirable for the user, and the user's audience, as it can detract from the broadcasted video.